#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <vector>

using namespace std;

struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(NULL) {}
};

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Solution {
   public:
    double myPow(double x, int n) {
        if (n == 0) return 1;
        if (n == -1) return 1 / x;
        if (n & 1) return myPow(x * x, n >> 1) * x;
        else return myPow(x * x, n >> 1);
    }
};

int main() {
    cout << "Hello, World!";
    Solution().myPow(2.0000, -2);
    return 0;
}